#include <bits/stdc++.h>

using namespace std;
const int maxn=100000000;
bitset<maxn> isPrime;
int prime_nums[maxn],cnt_primes=0;
void eulurSeive(int n)
{
    isPrime.set();
    isPrime[0]=isPrime[1]=0;
    for (int i=2; i<=n ; ++i )
    {
        if (isPrime[i])
        {
            prime_nums[++cnt_primes]=i;
        }
        for (int j=1; j<=cnt_primes&&i*prime_nums[j]<=n ; ++j )
        {
            isPrime[i*prime_nums[j]]=0;
            if (i%prime_nums[j]==0)
            {
                break;
            }
        }
    }
}
struct Factor
{
    int base,index;
} fac[10];
int factor(int n)
{
    eulurSeive(n);
    int upper=(int)sqrt(1.0*n),num=0;
    for (int i=1; prime_nums[i]<=upper ; ++i )
    {
        if (n%prime_nums[i]==0)
        {
            fac[num].base=prime_nums[i];
            fac[num].index=0;
            while (n%prime_nums[i]==0)
            {
                ++fac[num].index;
                n/=prime_nums[i];
            }
            ++num;
        }
    }
    if (n!=1)
    {
        fac[num].base=n;
        fac[num].index=1;
        ++num;
    }
    return num;
}
int main_120()
{
    int len=factor(10254262);
    for (int i=0; i<len ; ++i )
    {
        for (int j=0; j<fac[i].index ; ++j )
        {
            printf("%d*",fac[i].base);
        }
    }
    return 0;
}
